package com.itheima;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;

/*
绝对路径：
    从盘符开始
相对路径
    相对于项目的根目录而言
 */
public class Demo_File {
    public static void main(String[] args) throws IOException {
//        File file = new File("F:/com/a.txt");
//        System.out.println(file);
        /*//项目
        File file = new File("a.txt");
        //模块
        File file = new File("d12_file_io/a.txt");*/
        //新建文件
        /*File file2 = new File("F:/com/b.txt");
        File file1 = new File("F:/com/a.txt");
        boolean newFile = file1.createNewFile();
        System.out.println(newFile);*/
        //新建文件夹
        //单层
        /*File file = new File("F:/com/itheima");
        boolean mkdir = file.mkdir();
        System.out.println(mkdir);*/
        //多层
       /* File file = new File("F:/com/it/heima/001");
        boolean mkdirs = file.mkdirs();
        System.out.println(mkdirs);*/
        //删除
        /*boolean delete = file.delete();
        System.out.println(delete);
        boolean delete1 = file2.delete();
        System.out.println(delete1);*/
        //判断
        //是否是文件
        /*File file = new File("F:/com/a.txt");
        boolean b = file.isFile();
        System.out.println(b);*/
        //打开文件夹/盘符，查看包括隐藏文件在内的所有文件夹以及文件
        /*File file = new File("F:\\");
        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1);
        }*/
        //在当前模块下创建文件
        /*File file = new File("d12_file_io/test");
        if (!file.exists()) {
            file.mkdirs();
        }
        File file1 = new File(file, "b.txt");
        file1.createNewFile();*/
        //删除多层文件夹
        /*File dir = new File("F:/com");
        deleteDir(dir);*/
        //获得当前模块下的文件数目
        /*HashMap<String, Integer> map = new HashMap<>();
        File dir = new File("d12_file_io");
        getCount(map, dir);//调用方法
        map.forEach((k, v) -> System.out.println(k + ":" + v));//遍历*/

    }
    //getCount方法
    /* private static void getCount(HashMap<String, Integer> map, File dir) {
        //打开
        File[] files = dir.listFiles();
        //遍历
        for (File file : files) {
            //判断
            if (file.isFile()) {//是文件
                String name = file.getName();//获得文件名
                String s = name.substring(name.lastIndexOf("."));//从最后一个"."截取
                map.put(s, map.containsKey(s) ? map.get(s) : 1);//包含该文件吗？包含就加一，不包含1
            } else {//不是递归
                getCount(map, file);
            }
        }*/
    //deleteDir方法
    /* private static void deleteDir(File dir) {
        File[] files = dir.listFiles();
        for (File file : files) {
            if(file.isFile()){
             file.delete();
            }else {
                deleteDir(file);
            }
        }
        dir.delete();
    }*/
}



